package org.soderiakelvy.controller.sujeto;

import java.util.List;

import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import org.soderiakelvy.controller.util.Constante;
import org.soderiakelvy.model.domain.ContribucionVO;
import org.soderiakelvy.model.domain.SucursalVO;
import org.soderiakelvy.model.domain.SujetoVO;
import org.soderiakelvy.model.service.SucursalServicio;
import org.soderiakelvy.model.service.SujetoServicio;
import org.soderiakelvy.model.service.imp.SucursalServicioImp;
import org.soderiakelvy.model.service.imp.SujetoServicioImpl;

@ManagedBean
public class SujetoEmpresaSucursalesList {
	//VO
	private SujetoVO sujeto;
	private ContribucionVO contribucion = new ContribucionVO();
	//List
	private List<SucursalVO> sucursales;
	//Service
	private SucursalServicio serviceSucursal = new SucursalServicioImp();
	private SujetoServicio serviceSujeto = new SujetoServicioImpl();
	
	
	//- Constructor
	public SujetoEmpresaSucursalesList(){
		getSujetoByContext();
	}
	
	private void getSujetoByContext(){
		FacesContext fc = FacesContext.getCurrentInstance();
		Map<String,Object> sessionParams = fc.getExternalContext().getSessionMap();
		sujeto = (SujetoVO) sessionParams.get("sujetoEmpresaUpdate");
		if(sujeto != null){
			getContribucionBySujeto();
			getSucursalesBySujeto();
		}
//		SujetoVO sujetoaux = new SujetoVO();
//		sujetoaux.setSujetoId((long)1);
//		sujeto = serviceSujeto.getSujetoVO(sujetoaux);
	}
	
	private void getSucursalesBySujeto(){
		sucursales = serviceSucursal.getSucursalesFromSujeto(sujeto);
	}
	
	private void getContribucionBySujeto(){
		contribucion = serviceSujeto.getContribucionBySujeto(sujeto);
		System.out.println("razon social "+contribucion.getRazonSocial());
	}
	
	/*
	 * Create a new sucursal to Sujeto  
	 */
	public String nuevaSucursal(){
		FacesContext fc = FacesContext.getCurrentInstance();
		Map<String,Object> sessionParams = fc.getExternalContext().getSessionMap();
		SucursalVO sucursal = new SucursalVO();
		sucursal.setSujeto(getSujeto());
		sessionParams.put("sucursalCreate", sucursal);
		sessionParams.put("tipoCrudSucursal",Constante.SUJETO_EMPRESA_CREATE);
		return "sujetoEmpresaSucursal.xhtml?faces-redirect=true";
	}
	
	public String editarSucursal(SucursalVO suc){		
		FacesContext fc = FacesContext.getCurrentInstance();
		Map<String,Object> sessionParams = fc.getExternalContext().getSessionMap();
		sessionParams.put("sucursalUpdate", suc);
		return "sujetoEmpresaEdit.xhtml?faces-redirect=true";
	}

	// GET AND SET
	public ContribucionVO getContribucion() {
		return contribucion;
	}

	public List<SucursalVO> getSucursales() {
		return sucursales;
	}
	
	public SujetoVO getSujeto(){
		return sujeto;
	}
	
}
